<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
      <link rel="shortcut icon" href="../../../img/favicon.ico" />
    <title>Overview - DISMTools Help Documentation</title>
    <link rel="stylesheet" href="../../../css/theme.css" />
    <link rel="stylesheet" href="../../../css/theme_extra.css" />
        <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/github.min.css" />
    
      <script>
        // Current page data
        var mkdocs_page_name = "Overview";
        var mkdocs_page_input_path = "img_tasks\\appx\\appx.md";
        var mkdocs_page_url = null;
      </script>
    
    <!--[if lt IE 9]>
      <script src="../../../js/html5shiv.min.js"></script>
    <![endif]-->
      <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/highlight.min.js"></script>
      <script>hljs.highlightAll();</script> 
</head>

<body class="wy-body-for-nav" role="document">

  <div class="wy-grid-for-nav">
    <nav data-toggle="wy-nav-shift" class="wy-nav-side stickynav">
    <div class="wy-side-scroll">
      <div class="wy-side-nav-search">
          <a href="../../..">
          <img src="../../../logo.png" class="logo" alt="Logo"/>
        </a><div role="search">
  <form id ="rtd-search-form" class="wy-form" action="../../../search.html" method="get">
      <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" title="Type search term here" />
  </form>
</div>
      </div>

      <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
              <ul>
                <li class="toctree-l1"><a class="reference internal" href="../../..">Home</a>
                </li>
              </ul>
              <ul>
                <li class="toctree-l1"><a class="reference internal" href="../../../getting_started/start/">Getting started</a>
                </li>
              </ul>
              <ul>
                <li class="toctree-l1"><a class="reference internal" href="../../../whats_new/highlights/">What's new</a>
                </li>
              </ul>
              <p class="caption"><span class="caption-text">Image tasks</span></p>
              <ul class="current">
                  <li class="toctree-l1"><a class="reference internal" href="../../img_tasks/">Overview</a>
                  </li>
                  <li class="toctree-l1"><a class="reference internal" href="../../online_inst_mgmt/">Online installation management mode</a>
                  </li>
                  <li class="toctree-l1"><a class="reference internal" href="../../offline_inst_mgmt/">Offline installation management mode</a>
                  </li>
                  <li class="toctree-l1"><a class="reference internal" >Image management</a>
    <ul>
                <li class="toctree-l2"><a class="reference internal" href="../../mgmt/append_image/">Appending to an image</a>
                </li>
                <li class="toctree-l2"><a class="reference internal" href="../../mgmt/apply_image/">Applying an image</a>
                </li>
                <li class="toctree-l2"><a class="reference internal" href="../../mgmt/capture_image/">Capturing an image</a>
                </li>
                <li class="toctree-l2"><a class="reference internal" href="../../mgmt/delete_image/">Removing volume images from an image file</a>
                </li>
                <li class="toctree-l2"><a class="reference internal" href="../../mgmt/export_image/">Exporting a Windows image</a>
                </li>
                <li class="toctree-l2"><a class="reference internal" href="../../mgmt/list_image/">Listing the contents of Windows images</a>
                </li>
                <li class="toctree-l2"><a class="reference internal" href="../../mgmt/mount_image/">Mounting an image</a>
                </li>
                <li class="toctree-l2"><a class="reference internal" href="../../mgmt/remount_image/">Remounting an image</a>
                </li>
                <li class="toctree-l2"><a class="reference internal" href="../../mgmt/split_image/">Splitting an image</a>
                </li>
                <li class="toctree-l2"><a class="reference internal" href="../../mgmt/unmount_image/">Unmounting an image</a>
                </li>
                <li class="toctree-l2"><a class="reference internal" >Image information dialogs</a>
    <ul>
                <li class="toctree-l3"><a class="reference internal" href="../../info/infodlgs/">Overview</a>
                </li>
                <li class="toctree-l3"><a class="reference internal" href="../../info/img_info/">Image file information</a>
                </li>
                <li class="toctree-l3"><a class="reference internal" href="../../info/pkg_info/">Package information</a>
                </li>
                <li class="toctree-l3"><a class="reference internal" href="../../info/feat_info/">Feature information</a>
                </li>
                <li class="toctree-l3"><a class="reference internal" href="../../info/appxpkg_info/">AppX package information</a>
                </li>
                <li class="toctree-l3"><a class="reference internal" href="../../info/cap_info/">Capability information</a>
                </li>
                <li class="toctree-l3"><a class="reference internal" href="../../info/drv_info/">Driver information</a>
                </li>
                <li class="toctree-l3"><a class="reference internal" href="../../info/winpe_info/">Windows PE configuration information</a>
                </li>
    </ul>
                </li>
    </ul>
                  </li>
                  <li class="toctree-l1"><a class="reference internal" >OS packages</a>
    <ul>
                <li class="toctree-l2"><a class="reference internal" href="../../packages/pkgs/">Overview</a>
                </li>
                <li class="toctree-l2"><a class="reference internal" href="../../packages/add_package/">Adding packages</a>
                </li>
                <li class="toctree-l2"><a class="reference internal" href="../../packages/remove_package/">Removing packages</a>
                </li>
    </ul>
                  </li>
                  <li class="toctree-l1"><a class="reference internal" >Features</a>
    <ul>
                <li class="toctree-l2"><a class="reference internal" href="../../features/features/">Overview</a>
                </li>
                <li class="toctree-l2"><a class="reference internal" href="../../features/enable_feature/">Enabling features</a>
                </li>
                <li class="toctree-l2"><a class="reference internal" href="../../features/disable_feature/">Disabling features</a>
                </li>
    </ul>
                  </li>
                  <li class="toctree-l1 current"><a class="reference internal current" >AppX packages</a>
    <ul class="current">
                <li class="toctree-l2 current"><a class="reference internal current" href="#">Overview</a>
    <ul class="current">
    <li class="toctree-l3"><a class="reference internal" href="#inside-an-appx-package">Inside an AppX package</a>
    </li>
    <li class="toctree-l3"><a class="reference internal" href="#app-installer-files">App Installer files</a>
    </li>
    <li class="toctree-l3"><a class="reference internal" href="#available-tasks">Available tasks</a>
    </li>
    </ul>
                </li>
                <li class="toctree-l2"><a class="reference internal" href="../add_provisionedappxpackage/">Adding AppX packages</a>
                </li>
                <li class="toctree-l2"><a class="reference internal" href="../remove_provisionedappxpackage/">Removing AppX packages</a>
                </li>
    </ul>
                  </li>
                  <li class="toctree-l1"><a class="reference internal" >Edition servicing</a>
    <ul>
                <li class="toctree-l2"><a class="reference internal" href="../../editions/editions/">Overview</a>
                </li>
                <li class="toctree-l2"><a class="reference internal" href="../../editions/set_edition/">Upgrading an image to a higher edition</a>
                </li>
                <li class="toctree-l2"><a class="reference internal" href="../../editions/set_productkey/">Setting the product key</a>
                </li>
    </ul>
                  </li>
                  <li class="toctree-l1"><a class="reference internal" >Languages and regional servicing</a>
    <ul>
                <li class="toctree-l2"><a class="reference internal" href="../../langs/set_layereddriver/">Setting keyboard layered drivers</a>
                </li>
    </ul>
                  </li>
                  <li class="toctree-l1"><a class="reference internal" >Capabilities</a>
    <ul>
                <li class="toctree-l2"><a class="reference internal" href="../../capabilities/caps/">Overview</a>
                </li>
                <li class="toctree-l2"><a class="reference internal" href="../../capabilities/add_capability/">Adding capabilities</a>
                </li>
                <li class="toctree-l2"><a class="reference internal" href="../../capabilities/remove_capability/">Removing capabilities</a>
                </li>
    </ul>
                  </li>
                  <li class="toctree-l1"><a class="reference internal" >Drivers</a>
    <ul>
                <li class="toctree-l2"><a class="reference internal" href="../../drivers/drvs/">Overview</a>
                </li>
                <li class="toctree-l2"><a class="reference internal" href="../../drivers/add_driver/">Adding drivers</a>
                </li>
                <li class="toctree-l2"><a class="reference internal" href="../../drivers/export_driver/">Exporting drivers</a>
                </li>
                <li class="toctree-l2"><a class="reference internal" href="../../drivers/import_driver/">Importing drivers</a>
                </li>
                <li class="toctree-l2"><a class="reference internal" href="../../drivers/remove_driver/">Removing drivers</a>
                </li>
    </ul>
                  </li>
              </ul>
              <p class="caption"><span class="caption-text">Tools</span></p>
              <ul>
                  <li class="toctree-l1"><a class="reference internal" href="../../tools/mimgmgr/">Mounted image manager</a>
                  </li>
                  <li class="toctree-l1"><a class="reference internal" href="../../tools/wim2esd/">Image conversion</a>
                  </li>
                  <li class="toctree-l1"><a class="reference internal" href="../../tools/swm2wim/">SWM file merger</a>
                  </li>
                  <li class="toctree-l1"><a class="reference internal" href="../../tools/configlisteditor/">DISM Configuration List Editor</a>
                  </li>
                  <li class="toctree-l1"><a class="reference internal" >ISO creation tools</a>
    <ul>
                <li class="toctree-l2"><a class="reference internal" href="../../tools/isocreator/">Overview</a>
                </li>
                <li class="toctree-l2"><a class="reference internal" href="../../tools/isocreator/isocreate/">Creating ISO files</a>
                </li>
                <li class="toctree-l2"><a class="reference internal" >Installing the operating system</a>
    <ul>
                <li class="toctree-l3"><a class="reference internal" href="../../tools/isocreator/install/localinstall/">Local installations</a>
                </li>
                <li class="toctree-l3"><a class="reference internal" >Network-based installations</a>
    <ul>
                <li class="toctree-l4"><a class="reference internal" href="../../tools/isocreator/install/netinst/pxehelpers/">Overview</a>
                </li>
                <li class="toctree-l4"><a class="reference internal" href="../../tools/isocreator/install/netinst/setup/">Creating a basic network setup (Hyper-V)</a>
                </li>
                <li class="toctree-l4"><a class="reference internal" href="../../tools/isocreator/install/netinst/wds/">Windows Deployment Services (WDS) Helper</a>
                </li>
    </ul>
                </li>
                <li class="toctree-l3"><a class="reference internal" >External Tools</a>
    <ul>
                <li class="toctree-l4"><a class="reference internal" href="../../tools/isocreator/exttools/dim/">Driver Installation Module</a>
                </li>
                <li class="toctree-l4"><a class="reference internal" href="../../tools/isocreator/exttools/dtpe_es/">Extensibility Suite</a>
                </li>
                <li class="toctree-l4"><a class="reference internal" href="../../tools/isocreator/exttools/sysprep/">SysPrep Preparation Tool</a>
                </li>
    </ul>
                </li>
                <li class="toctree-l3"><a class="reference internal" >Command-line</a>
    <ul>
                <li class="toctree-l4"><a class="reference internal" href="../../tools/isocreator/cmdline/cmdline/">Overview</a>
                </li>
                <li class="toctree-l4"><a class="reference internal" href="../../tools/isocreator/cmdline/scriptref/">Administration Script Reference</a>
                </li>
    </ul>
                </li>
    </ul>
                </li>
    </ul>
                  </li>
                  <li class="toctree-l1"><a class="reference internal" href="../../tools/regcpl/">Image registry control panel</a>
                  </li>
                  <li class="toctree-l1"><a class="reference internal" href="../../tools/servicemgr/">System service manager</a>
                  </li>
                  <li class="toctree-l1"><a class="reference internal" href="../../tools/envvarmgr/">System environment variable manager</a>
                  </li>
                  <li class="toctree-l1"><a class="reference internal" >Unattended answer files</a>
    <ul>
                <li class="toctree-l2"><a class="reference internal" href="../../unattend/unattend/">Overview</a>
                </li>
                <li class="toctree-l2"><a class="reference internal" href="../../unattend/unatt_man/">Unattended answer file manager</a>
                </li>
                <li class="toctree-l2"><a class="reference internal" href="../../unattend/unatt_create/">Unattended answer file creator</a>
                </li>
                <li class="toctree-l2"><a class="reference internal" href="../../unattend/unatt_apply/">Applying unattended answer files</a>
                </li>
    </ul>
                  </li>
                  <li class="toctree-l1"><a class="reference internal" >External tools</a>
    <ul>
                <li class="toctree-l2"><a class="reference internal" href="../../exttools/themedesigner/">Creating your themes</a>
                </li>
                <li class="toctree-l2"><a class="reference internal" href="../../exttools/dynaviewer/">Viewing diagnostic logs</a>
                </li>
    </ul>
                  </li>
              </ul>
      </div>
    </div>
    </nav>

    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
      <nav class="wy-nav-top" role="navigation" aria-label="Mobile navigation menu">
          <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
          <a href="../../..">DISMTools Help Documentation</a>
        
      </nav>
      <div class="wy-nav-content">
        <div class="rst-content"><div role="navigation" aria-label="breadcrumbs navigation">
  <ul class="wy-breadcrumbs">
    <li><a href="../../.." class="icon icon-home" aria-label="Docs"></a></li>
          <li class="breadcrumb-item">Image tasks</li>
          <li class="breadcrumb-item">AppX packages</li>
      <li class="breadcrumb-item active">Overview</li>
    <li class="wy-breadcrumbs-aside">
    </li>
  </ul>
  <hr/>
</div>
          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
            <div class="section" itemprop="articleBody">
              
                <h1 id="overview-of-appx-packages">Overview of AppX packages</h1>
<p>With <a href="https://en.wikipedia.org/wiki/Windows_8">Windows 8</a>, Microsoft introduced a new kind of applications, Metro-style apps, that work with the operating system's new interface and design guidelines. These apps are packed in the AppX format, and can be deployed with DISM or with the PowerShell cmdlets provided by the <code>Appx</code> module.</p>
<p>DISMTools 0.2 introduced AppX package servicing, which allows you to add and remove these applications to and/or from Windows images and/or online installations.</p>
<h2 id="inside-an-appx-package">Inside an AppX package</h2>
<p><strong>NOTE:</strong> this information is based on how applications are packed in the MSIX format, but this also applies to AppX packages. An overview of the MSIX packaging format can be accessed <a href="https://learn.microsoft.com/en-us/windows/msix/overview">here</a>. However, this information focuses on more technical things about these packages</p>
<p>This is the overall structure of an AppX package:</p>
<p align="center">
    <img src="https://learn.microsoft.com/en-us/windows/msix/package/images/msixpackage.png" />
    <p align="center"><i>Source: <a href="https://microsoft.com">Microsoft</a></i></p>
</p>

<p>However, the placement of some files varies depending on the <strong>format</strong> of the application:</p>
<ul>
<li><code>.appx</code> and <code>.msix</code> packages contain the manifest on the root of the package, as <code>AppxManifest.xml</code></li>
</ul>
<p align="center">
    <img src="../../../res/img_tasks/appx/appxmanifest.png" />
</p>

<ul>
<li><code>.appxbundle</code> and <code>.msixbundle</code> packages store the manifest as <code>AppxBundleManifest.xml</code>, under the <code>AppxMetadata</code> directory</li>
</ul>
<p align="center">
    <img src="../../../res/img_tasks/appx/appxbundlemanifest.png" />
</p>

<p>We are interested in the manifest file because it <strong>provides information about the application</strong>: its name, its publisher info, its version and, most importantly, its dependencies.</p>
<p><strong>NOTE:</strong> if you've ever stumbled upon an <code>.eappx</code> or <code>.emsix</code> package, these <strong>cannot be opened or deployed through DISM</strong>, and need to be deployed using the <code>Add-AppxPackage</code> cmdlet</p>
<p>Let's look at a manifest file. This is the manifest file of <a href="https://en.wikipedia.org/wiki/Rayman_Origins#Rayman_Jungle_Run">Rayman Jungle Run</a>:</p>
<p align="center">
    <img src="../../../res/img_tasks/appx/inside_manifest.png" />
</p>

<p>If you can't read the selected text, here it is in code view:</p>
<pre><code class="language-xml">&lt;Identity Name=&quot;UbisoftEntertainment.RaymanJungleRun&quot; Publisher=&quot;CN=C6D89DF1-FB66-4AAD-9100-AD9BE1186BE1&quot; Version=&quot;1.2.0.88&quot; ProcessorArchitecture=&quot;x86&quot; /&gt;
</code></pre>
<p>This is the information you'll see when adding AppX packages with DISMTools:</p>
<p align="center">
    <img style="height: 75px" src="../../../res/img_tasks/appx/app_info.png" />
</p>

<p>The aforementioned line of XML code can be located on line 3 of the manifest, or on line 10 if a comment begins on line 3.</p>
<p>Now, <strong>how can DISMTools detect the store logo asset</strong>? By using the manifest file. Shortly after the XML code mentioned, a <code>&lt;Properties&gt;</code> tag begins, which contains information about the package <strong>display name</strong> (or how it will be shown on the start menu), the display name of the <strong>publisher</strong>, and the <strong>location of the store logo asset</strong>. Based on the last property, DISMTools goes through the AppX package and extracts the store logo asset, if it can. Otherwise, it will show a generic icon.</p>
<p align="center">
    <img style="height: 486px" src="../../../res/img_tasks/appx/logoasset.png" />
</p>

<p>The location of the store logo asset also varies depending on the format of the application. In <code>.appxbundle</code> and <code>.msixbundle</code> packages, it is stored in another AppX package inside its parent package, in which the store logo asset can be extracted from the same location.</p>
<p>With the store logo asset on hand, DISMTools copies it to a store logo asset cache, so that it doesn't extract the asset again if it exists in the cache.</p>
<h2 id="app-installer-files">App Installer files</h2>
<p>At some point you may run into this type of package and wonder what it is. App Installer files are XML files that declare the download URL for the main package (which is usually a bundle file). Let's look at them:</p>
<p>INFO: you can view the structure of these files in any text editor, like Notepad</p>
<p>What we're interested in is the <code>&lt;MainBundle&gt;</code> section, which defines the package name, publisher, version, and the main package download URL. Here is an example:</p>
<pre><code class="language-xml">&lt;MainBundle Name=&quot;Microsoft.WinDbg&quot; Version=&quot;1.2306.12001.0&quot; Publisher=&quot;CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US&quot; Uri=&quot;https://windbg.download.prss.microsoft.com/dbazure/prod/1-2306-12001-0/windbg.msixbundle&quot; /&gt;
</code></pre>
<p>The <code>Uri</code> property is what matters. DISMTools versions from 0.3.2 onwards read these files, detect a URL, and perform a file download.</p>
<p align="center">
    <img src="../../../res/img_tasks/appx/appinstaller_down.png" />
</p>

<p>You can view the reference of App Installer files <a href="https://learn.microsoft.com/en-us/uwp/schemas/appinstallerschema/schema-root">here</a>.</p>
<h2 id="available-tasks">Available tasks</h2>
<ul>
<li><a href="../add_provisionedappxpackage">Adding provisioned AppX packages</a></li>
<li><a href="../../info/appxpkg_info">Getting AppX package information</a></li>
<li><a href="../remove_provisionedappxpackage">Removing provisioned AppX packages</a></li>
</ul>
<p align="center">
    <img src="../../../res/img_tasks/appx/appx.png" />
</p>
              
            </div>
          </div><footer>

  <hr/>

  <div role="contentinfo">
    <!-- Copyright etc -->
  </div>

  Built with <a href="https://www.mkdocs.org/">MkDocs</a> using a <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
          
        </div>
      </div>

    </section>

  </div>

  <div class="rst-versions" role="note" aria-label="Versions">
  <span class="rst-current-version" data-toggle="rst-current-version">
    
    
      <span><a href="../../features/disable_feature/" style="color: #fcfcfc">&laquo; Previous</a></span>
    
    
      <span><a href="../add_provisionedappxpackage/" style="color: #fcfcfc">Next &raquo;</a></span>
    
  </span>
</div>
    <script src="../../../js/jquery-3.6.0.min.js"></script>
    <script>var base_url = "../../..";</script>
    <script src="../../../js/theme_extra.js"></script>
    <script src="../../../js/theme.js"></script>
      <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.4/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
      <script src="../../../search/main.js"></script>
    <script>
        jQuery(function () {
            SphinxRtdTheme.Navigation.enable(false);
        });
    </script>

</body>
</html>
